﻿using MongoDB.Bson.Serialization.Attributes;
using System;
using System.Collections.Generic;

namespace Sustainalytics.Entities.RiskRatings
{
    public class RiskRatingDataPoint
    {
        public int XValue { get; set; }
        public int YValue { get; set; }
    }


    [BsonKnownTypes(typeof(PeerAggregate), typeof(UniverseAggregate), typeof(SubIndustryAggregate), typeof(SubIndustryMaterialEsgIssueAggregate))]
    public class PeerAggregate
    {
        public Guid Id { get; set; }
        public IEnumerable<RiskRatingDataPoint> Data { get; set; }
    }


    public class UniverseAggregate : PeerAggregate
    { }

    public class IndustryAggregate : PeerAggregate
    {
        public string Industry { get; set; }
    }

    public class SubIndustryAggregate : PeerAggregate
    {
        public int SubIndustryId { get; set; }
    }

    public class IndustryMaterialEsgIssueAggregate : IndustryAggregate
    {
        public int MEIExternalId { get; set; }
    }

    public class SubIndustryMaterialEsgIssueAggregate : SubIndustryAggregate
    {
        public int MEIExternalId { get; set; }
    }

    public class UniverseMaterialEsgIssueAggregate : PeerAggregate
    {
        public int MEIExternalId { get; set; }
    }
}